package br.unidocs.servico;

import java.util.List;

import javax.ejb.Local;

import br.unidocs.exceptions.UsuarioInvalidoException;
import br.unidocs.modelo.entidade.Usuario;

@Local
// servico soh sera exposto para clientes locais, serviço mais leve - no mesmo
// sevidor de aplicação
// poderia ser @Remote - transfere todos os dados pela rede.
public interface UsuarioEJB {

	List<Usuario> listaUsuarios();

	Usuario localizaUsuario(int id);

	// Usuario obterPorId(Integer id);

	void criaUsuario(Usuario novoUsuario);

	void atualizaUsuario(Usuario usuario);

	// void atualizaCadastro(Usuario usuario);

	void excluiUsuario(Usuario u);

	void desativaUsuario(int id);

	void recuperaSenha(String email) throws UsuarioInvalidoException;

	Usuario validaUsuario(String login, String senha)
			throws UsuarioInvalidoException;

	Usuario localizaPorEmail(String email) throws UsuarioInvalidoException;

	Usuario localizaPorLogin(String login) throws UsuarioInvalidoException;

}
